const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const fs = require('fs');

const app = express();
const port = 3000;

app.use(cors());
app.use(bodyParser.json());

const userFilePath = 'users.json';

// 读取用户信息
function readUsers() {
  try {
    const data = fs.readFileSync(userFilePath, 'utf8');
    return JSON.parse(data);
  } catch (err) {
    return [];
  }
}

// 写入用户信息
function writeUsers(users) {
  fs.writeFileSync(userFilePath, JSON.stringify(users), 'utf8');
}


app.post('/api/login', (req, res) => {
  const { username, password } = req.body;
  // 重新读取用户信息
  const users = readUsers();
  // 在实际应用中，这里应该与数据库进行比较，这里只是简单的示例
  const user = users.find(user => user.username === username && user.password === password);
  if (user) {
    res.json({ success: true, message: '登录成功' });
  } else {
    // 返回不同的状态码和消息
    if (users.some(user => user.username === username)) {
      // 用户存在但密码错误
      res.status(401).json({ success: false, message: '密码错误' });
    } else {
      // 用户不存在
      res.status(404).json({ success: false, message: '用户未注册' });
    }
  }
});


app.post('/api/register', (req, res) => {
  const { username, password } = req.body;
  const users = readUsers();
  // 检查是否已存在相同用户名
  if (users.some(user => user.username === username)) {
    return res.status(400).json({ success: false, message: '用户名已存在' });
  }
  // 添加新用户信息
  const newUser = { username, password };
  users.push(newUser);
  // 写入更新后的用户信息
  writeUsers(users);
  // 注册成功的响应
  res.json({ success: true, message: '注册成功' });
});
app.post('/api/clearUsers', (req, res) => {
  // 将 users.json 文件内容置为空数组
  writeUsers([]);
  res.json({ success: true, message: '已清除所有已注册用户信息' });
});
app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});